f02bjf

f02bjf © Numerical Algorithms Group, 2002.

Purpose

F02BJF All eigenvalues and optionally eigenvectors of generalized eigenproblem by QZ algorithm, real matrices (Black Box)

Synopsis

[alfr,alfi,beta,v,iter,ifail] = f02bjf(a,b<,eps1,matv,ifail>)

Description

 
 All the eigenvalues and, if required, all the eigenvectors of the
 generalized eigenproblem Ax=(lambda)Bx where A and B are real, 
 square matrices, are determined using the QZ algorithm. The QZ 
 algorithm consists of 4 stages:
 
 (a)   A is reduced to upper Hessenberg form and at the same time 
       B is reduced to upper triangular form.
 
 (b)   A is further reduced to quasi-triangular form while the 
       triangular form of B is maintained.
 
 (c)   The quasi-triangular form of A is reduced to triangular 
       form and the eigenvalues extracted. This routine does not 
       actually produce the eigenvalues (lambda) , but instead 
                                                j             
       returns (alpha)  and (beta)  such that
                      j           j      

               (lambda) =(alpha) /(beta) ,   j=1,2,...,.n
                       j        j       j

       The division by (beta)  becomes the responsibility of the 
                             j                                  
       user's program, since (beta)  may be zero indicating an 
                                   j                          
       infinite eigenvalue. Pairs of complex eigenvalues occur 
       with (alpha) /(beta)  and (alpha)   /(beta)    complex 
                   j       j            j+1       j+1        
       conjugates, even though (alpha)  and (alpha)    are not 
                                      j            j+1        
       conjugate.
 
 (d)   If the eigenvectors are required (MATV = .TRUE.), they are 
       obtained from the triangular matrices and then transformed 
       back into the original co-ordinate system.
 

Parameters

f02bjf

Required Input Arguments:

a (:,:)                               real
b (:,:)                               real

Optional Input Arguments:                       <Default>

eps1                                  real     eps
matv                                  logical  1
ifail                                 integer  -1

Output Arguments:

alfr (:)                              real
alfi (:)                              real
beta (:)                              real
v (:,:)                               real
iter (:)                              integer
ifail                                 integer